/**
 * Copyright (c) 2009, http://www.softwareinlife.com. All rights reserved.
 * 
 * Redistribution and use in source and binary forms, 
 * with or without modification, are permitted provided that 
 * the following conditions are met:
 * 
 * 1. Redistributions of source code must retain the above copyright notice, 
 *    this list of conditions and the following disclaimer.
 * 
 * 2. Redistributions in binary form must reproduce the above copyright notice, 
 *    this list of conditions and the following disclaimer in the documentation 
 *    and/or other materials provided with the distribution.
 * 
 * 3. Neither the name of the http://www.softwareinlife.com nor the names of its 
 *    contributors may be used to endorse or promote products derived from 
 *    this software without specific prior written permission.
 * 
 * THIS SOFTWARE IS PROVIDED BY THE SOFTWAREINLIFE AND CONTRIBUTORS "AS IS" 
 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, 
 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 
 * ARE DISCLAIMED. 
 * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 
 * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 
 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 
 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED 
 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 
 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
package com.softwareinlife.vision.android.data.model;

import java.util.Date;
import java.util.List;

import com.softwareinlife.vision.android.system.model.BaseModel;

/**
 * Value Model
 * 
 * @author Jang, Sun-Jin(jangsunjin@softwareinlife.com)
 * @date 2009. 10. 10.
 */
public class ScheduleModel extends BaseModel {

	/**
	 * Serial Version UID
	 */
	private static final long serialVersionUID = 1L;

	/**
	 * Model of User
	 */
	protected UserModel user = null;
	
	/**
	 * Model of Plan
	 */
	protected PlanModel plan = null;
	
	/**
	 * Schedule's Events
	 */
	protected List<EventModel> events = null;
	
	/**
	 * Schedule's Title
	 */
	protected String title = null;

	/**
	 * Schedule's Description
	 */
	protected String desc = null;

	/**
	 * Schedule's Start Date
	 */
	protected Date startDate = null;
	
	/**
	 * Schedule's End Date
	 */
	protected Date endDate = null;
	
	/**
	 * Schedule's Repeat
	 */
	protected String repeat = null;
	
	/**
	 * Schedule's Where
	 */
	protected String where = null;
	
	/**
	 * Schedule's Status
	 */
	protected String status = null;
	
	/**
	 * Constructor
	 */
	public ScheduleModel() {
		super();
	}

	/**
	 * Constructor
	 * 
	 * @param user
	 * @param plan
	 * @param events
	 * @param title
	 * @param desc
	 * @param startDate
	 * @param endDate
	 * @param repeat
	 * @param where
	 * @param status
	 */
	public ScheduleModel(UserModel user, PlanModel plan,
			List<EventModel> events, String title, String desc, Date startDate,
			Date endDate, String repeat, String where, String status) {
		this.user = user;
		this.plan = plan;
		this.events = events;
		this.title = title;
		this.desc = desc;
		this.startDate = startDate;
		this.endDate = endDate;
		this.repeat = repeat;
		this.where = where;
		this.status = status;
	}



	/**
	 * @return the user
	 */
	public UserModel getUser() {
		return user;
	}

	/**
	 * @param user the user to set
	 */
	public void setUser(UserModel user) {
		this.user = user;
	}

	/**
	 * @return the plan
	 */
	public PlanModel getPlan() {
		return plan;
	}

	/**
	 * @param plan the plan to set
	 */
	public void setPlan(PlanModel plan) {
		this.plan = plan;
	}

	/**
	 * @return the title
	 */
	public String getTitle() {
		return title;
	}

	/**
	 * @param title the title to set
	 */
	public void setTitle(String title) {
		this.title = title;
	}

	/**
	 * @return the desc
	 */
	public String getDesc() {
		return desc;
	}

	/**
	 * @param desc the desc to set
	 */
	public void setDesc(String desc) {
		this.desc = desc;
	}

	/**
	 * @return the startDate
	 */
	public Date getStartDate() {
		return startDate;
	}

	/**
	 * @param startDate the startDate to set
	 */
	public void setStartDate(Date startDate) {
		this.startDate = startDate;
	}

	/**
	 * @return the endDate
	 */
	public Date getEndDate() {
		return endDate;
	}

	/**
	 * @param endDate the endDate to set
	 */
	public void setEndDate(Date endDate) {
		this.endDate = endDate;
	}

	/**
	 * @return the repeat
	 */
	public String getRepeat() {
		return repeat;
	}

	/**
	 * @param repeat the repeat to set
	 */
	public void setRepeat(String repeat) {
		this.repeat = repeat;
	}

	/**
	 * @return the where
	 */
	public String getWhere() {
		return where;
	}

	/**
	 * @param where the where to set
	 */
	public void setWhere(String where) {
		this.where = where;
	}

	/**
	 * @return the status
	 */
	public String getStatus() {
		return status;
	}

	/**
	 * @param status the status to set
	 */
	public void setStatus(String status) {
		this.status = status;
	}

	/**
	 * @return the events
	 */
	public List<EventModel> getEvents() {
		return events;
	}

	/**
	 * @param events the events to set
	 */
	public void setEvents(List<EventModel> events) {
		this.events = events;
	}
}